#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
自动创建Django管理员账户的脚本
"""
import os
import sys
import django
from django.core.management import execute_from_command_line

# 设置Django设置模块
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings_ultra_minimal')

# 设置Django
django.setup()

def create_superuser():
    """创建超级用户"""
    from django.contrib.auth.models import User
    
    # 检查是否已存在超级用户
    if User.objects.filter(is_superuser=True).exists():
        print("超级用户已存在！")
        existing_users = User.objects.filter(is_superuser=True)
        for user in existing_users:
            print(f"- 用户名: {user.username}")
        return
    
    # 创建默认超级用户
    username = input("请输入管理员用户名 (默认: admin): ").strip() or "admin"
    email = input("请输入管理员邮箱 (默认: admin@example.com): ").strip() or "admin@example.com"
    
    while True:
        password = input("请输入管理员密码: ").strip()
        if len(password) >= 8:
            break
        print("密码长度至少8位，请重新输入！")
    
    try:
        user = User.objects.create_superuser(
            username=username,
            email=email,
            password=password
        )
        print(f"✅ 成功创建管理员账户: {username}")
        print(f"📧 邮箱: {email}")
        print("🔐 密码: [已设置]")
        print("\n现在您可以使用此账户登录管理后台: http://127.0.0.1:8000/admin/")
        
    except Exception as e:
        print(f"❌ 创建用户失败: {e}")

def main():
    """主函数"""
    print("🚀 Django MES 系统管理员账户创建工具")
    print("=" * 50)
    
    # 首先运行迁移
    print("📊 正在运行数据库迁移...")
    try:
        execute_from_command_line(['manage.py', 'migrate', '--settings=settings_ultra_minimal'])
        print("✅ 数据库迁移完成")
    except Exception as e:
        print(f"❌ 数据库迁移失败: {e}")
        return
    
    print("\n" + "=" * 50)
    print("👤 创建管理员账户")
    print("=" * 50)
    
    # 创建超级用户
    create_superuser()
    
    print("\n" + "=" * 50)
    print("🎉 设置完成！")
    print("💡 提示: 运行 'python manage.py runserver --settings=settings_ultra_minimal' 启动服务器")

if __name__ == "__main__":
    main() 